Release Notes
This document provides the release history of JuiceFS Cloud Service. For JuiceFS Community Edition release notes, please refer to our GitHub page.
JuiceFS Client maintains good forward and backward compatibility. However, when upgrading across major versions (for example, 5.1 → 5.2), compatibility issues may occasionally arise. If you need to roll back after a major upgrade, see juicefs version.
JuiceFS 5.3.9 (2026/5/27)
- Improved
- mount: Improved mount startup speed
- mount: Support hot reloading access credentials for object storage
- mount: When data replication is enabled and the primary storage network times out, prefer the secondary storage for a period of time
- mount: Support prefetching data objects from the secondary cache group
- warmup: Added the
--samplesoption to estimate the ratio of cached data by sampling - warmup: No longer updates file atime
- sync: Support encryption and decryption for transferred objects
- sync: Support periodic checkpoint writes for fast task restart
- import: Allow using file names as
Listprefixes - Reduced condition variable wait time in client
- Support hot unplug of RDMA devices
- Automatically fall back to TCP when RDMA connection is abnormal
- Added count metrics for warning and error level logs
- Bugfix
- Fixed an issue where smooth upgrade might fail when old processes could not exit normally
- warmup: Fixed an issue where results might be incorrect when checking multiple paths with
--check - sync: Fixed a false error that might occur when synchronizing the same symlink file concurrently
- find: Fixed an issue where empty directories might not be correctly identified when using
--empty - Windows: Fixed a potential client crash when integrating with AD services
JuiceFS 5.3.8 (2026/5/11)
- Improved
- find: Support
-printfto customize output format - sync: Reduce concurrent
lookupandresolverequests - import: Added the
delete-dstoption to remove previously imported files that are no longer needed - Update atime when accessing files using the
opencacheoption - Improved access log file rotation policy with support for specifying file size
- Improved RDMA usability
- object/oss: Support private link format
- find: Support
- Bugfix
- gateway: Fixed an issue where
HEAD path-to-file/did not return an error as expected - Fixed an issue where the checksum of local data cache files might be calculated incorrectly
- gateway: Fixed an issue where
JuiceFS 5.3.7 (2026/4/21)
- New
- Added the
findsubcommand for quickly filtering files that meet certain criteria
- Added the
- Improved
- mount: Added the
--access-logoption to write access logs to a specified file - mount: Ignored symlink cache configuration to avoid retaining old processes after a smooth restart (introduced since 5.3.5)
- gc: Added the
false-positive-rateparameter to adjust the false positive rate of the Bloom Filter - gc: Faster listing from Ceph
- sync: Allowed using the
jfs://protocol header without relying on configuration files, directly using the meta URL instead - Added
maxvalue for some FUSE and distributed cache metrics
- mount: Added the
- Bugfix
- Fixed an issue where the
debugsubcommand might fail to collect client logs - object/S3: Use the default credential chain in
autoS3Regionwhen the access key is empty
- Fixed an issue where the
JuiceFS 5.3.6 (2026/4/1)
- New
- Added the
attrsubcommand to manage extended attributes of files
- Added the
- Improved
- Enhanced client session reconnection checks to prevent connecting to the wrong cluster
- Automatically upgrade all extended-version binaries when upgrading the client
- Reduced client process memory usage
- Removed forced timeout interruption for
flockto avoid returningERESTARTSYSerrors
- Bugfix
- Fixed an issue where object storage GET request latency was not being counted
- Fixed an issue where the
stageBlockBytesmetric was not correctly counted when writeback was enabled - Fixed an issue where slow requests might not be correctly counted in container environments
JuiceFS 5.3.5 (2026/3/19)
- Improved
- mount: Support adjusting mount timeout via the
JFS_MOUNT_TIMEOUTenvironment variable - mount: Disable kernel symlink cache to avoid incorrect symlink targets
- Reduced client CPU usage
- Improved peak performance for small I/O random reads
- Allow iorpc and tcp to share the same port
- When background tasks are disabled, also disable the scheduled sync task for cross-region data replication
- mount: Support adjusting mount timeout via the
- Bugfix
- import: Fixed an issue that the configuration file might not be read correctly when using the
--conf-dirparameter - Fixed an issue that Ceph could not be accessed normally when the
JFS_NO_CHECK_OBJECT_STORAGEenvironment variable was set - SDK: Fixed a potential infinite loop when recording operation logs
- import: Fixed an issue that the configuration file might not be read correctly when using the
JuiceFS 5.3.4 (2026/3/10)
- New
- Support limiting the number and total size of trash files
- Improved
- Support metrics for FUSE read/write latency
- Optimized memory usage for GUID mapping and added local cache
- Release op lock when client disconnects
- merge: Automatically retry after defragmentation for large files
- gc: Reduced memory usage during runtime
- Bugfix
- Fixed an issue that when open cache is enabled, the first chunk of a file might read stale data
- Fixed an issue that some synchronization mechanisms did not work correctly when cross-region data replication was enabled
- clone: Fixed an issue that batch cloning might result in incomplete clones
- clone: Fixed a potential panic when encountering a directory without access permissions during cloning
JuiceFS 5.3.3 (2026/3/2)
- Improved
- Increased the maximum number of files per batch during clone
- sync: Optimized temporary file naming and limited directory-level cache entries
- RDMA: Automatically fall back to TCP when no device is available
- RDMA: Support setting handshake timeout and improved memory management and stability
- RDMA/iorpc: Multiple memory and connection stability optimizations (page management, synchronous write responses, cancel request handling)
- Bugfix
- Fixed an issue that incorrect file length might be used when calculating cache file checksums
- sync: Implemented idempotency when large files uploaded in chunks finish syncing, and fixed a potential panic on errors
- Windows: Fixed WinFsp version detection issue
JuiceFS 5.3.2 (2026/2/2)
- New
- sync: Support external rate limiting
- Improved
- sync: Reduced memory usage during directory traversal
- Improved RDMA compatibility and stability
- Bugfix
- Fixed an issue that cache could become ineffective on older kernels because tmpfs does not support directio
JuiceFS 5.3.1 (2026/1/14)
- New
- mount: Added the
--cache-scan-intervaloption to adjust cache disk scan interval - umount: Support
--update-fstabto remove corresponding configuration - fsck: Allow checking data integrity for a specific path
- debug: Support using
--pidto specify process ID - Support ioctl to set a file or directory to read-only or append-only
- Added
--trace-fileto enable and collect tracing - Allow read-only access to on-demand imported file systems through the S3 API
- Support importing arbitrary buckets from MinIO
- Build cache for data imported from other buckets
- Support accessing cache data through RDMA
- Support limiting QPS when accessing object storage
- Python SDK: Added APIs for
status,warmup,merge, andinfo - Python SDK: Added the
follow-linkparameter to clone API
- mount: Added the
- Improved
- mount: Add
nofailin fstab by default to ignore mount failures - status: Filter out tool sessions by default
- restore: Added progress bar
- warmup: Count data distribution by priority when using
--check - warmup: Added
--follow-linkoption - Improved response time for interactive operations such as info and warmup
- import: Fail immediately on List errors
- objbench: Fixed inaccurate logs
- gateway: Verify user-provided ETag when completing multipart uploads
- gateway: Compress client access logs
- sync: Allow configuring more client parameters (for example,
--mountpoint) - sync: Improved error handling when creating directories with the
jfs://protocol - sync: Improved performance of synchronizing large files with the
jfs://protocol - Improved cleanup speed of metadata cache
- Improved DirectIO with support for more types of read requests
- Automatically clean data cache when merging fragments
- Limit warmup bandwidth through background task throttling
- Collect read amplification metrics by default
- Verify file system name in config file during mount
- Use password saved in configuration file
- Allow customizing client hostname via the
HOSTNAMEenvironment variable - Reduced lock contention related to cache
- Support cache node IPs in CIDR format
- Respect
--io-retriesfor client reconnection attempts - Enable FUSE
EnableReadDirPlusAutoby default for kernel optimization - Ensure source cluster is connected before allowing access to writable mirror cluster to avoid errors
- Access source cluster when mirror is unavailable to avoid service interruptions
- Use mirrored file system name as mount point name
- Fixed an issue that metrics from multiple file systems could be mixed together
- Adjusted data replication monitoring to reduce noise from expected failed requests
- Automatically re-download client binary when a Ceph-capable client is corrupted
- Windows: Persist data on file close by default
- Windows: Improved background mount
- Windows: Added
--create-permmount option - Windows: Support customizing file system name
- Windows: Set the UID of administrator user to 0 (same as Linux root)
- Windows: Support DirectIO
- Windows: Optimized mount speed
- Optimized lock contention when evicting disk cache
- No longer retry timeout distributed cache requests
- mount: Add
- Bugfix
- Fixed an issue that statvfs might hang when
--block-interruptis configured - Fixed an issue that mount options in fstab could be incorrect
- sync: Fixed incorrect umask in cluster mode
- auth: Fixed potential failure when running auth concurrently
- Fixed inaccurate ping metrics in writable mirror mode
- Fixed an issue that scalar metrics with value 0 were not reported
- Fixed an issue that kernel cache could cause append writes to overwrite each other
- Fixed compatibility issues when source clusters of mirrored file systems use different versions
- Windows: Fixed GID mapping issue
- Fixed an issue that statvfs might hang when
JuiceFS 5.2.23 (2026/1/29)
- Improved
- Improved performance and stability of
statfswhen mounting subdirectories
- Improved performance and stability of
- Bugfix
- Fixed an issue that unexpected data could be uploaded to object storage when shared block device is enabled
JuiceFS 5.2.22 (2026/1/4)
- Improved
- Added
idle-writer-waitoption to reduce fragment generation during slow writes
- Added
- Bugfix
- Fixed an issue that checking Ceph support could exit unexpectedly
JuiceFS 5.2.21 (2025/12/22)
- Improved
- Python SDK:
clonesupports thefollow-linkparameter - Close idle distributed cache connections in time to release file descriptors
- Python SDK:
- Bugfix
- Fixed lock contention issue on cache nodes under high load
- sync: Fixed incorrect error count in logs
JuiceFS 5.2.20 (2025/12/8)
- Improved
- Interrupt in-flight requests when removing cache nodes to retry as soon as possible
- Increased significant digits in progress bar to 3
- Bugfix
- sync: Fixed compatibility issue with object storage that does not support URL encoding
- Fixed an issue that
readdircould cause data inconsistency - Fixed support issue of
WHITEOUTforrenameon macOS
JuiceFS 5.2.19 (2025/11/7)
- Improved
- Accelerated cache data evacuation when cache nodes go offline.
- Added support for adjusting the client's file descriptor limit via the
JFS_RLIMIT_NOFILEenvironment variable. - object/oss: added support for switching to v1 version signatures.
- object/oss: the
LISTinterface now includes the token parameter only when it is not empty.
JuiceFS 5.2.18 (2025/10/30)
- New
- Added the
case-insensitivemount option to support case-insensitive filenames. - Python SDK: added an API for listing files in the trash.
- Added the
JuiceFS 5.2.17 (2025/10/20)
- Improved
- The
synccommand now supports filtering by different types of timestamps. - The
synccommand will no longer be logged as a new session. - Python SDK: added quota management APIs.
- Python SDK: clone operations now support copying the attributes of source files.
- The
- Bugfix
- Fixed an issue that reference counts in the directory cache might not be properly reset during client reconnection.
- Fixed an issue that FUSE requests might be frequently interrupted.
- Fixed an issue that opening files on macOS might hang for a long time.
- Windows: fixed an issue that the
cache-diroption was not correctly applied when running in the background.
JuiceFS 5.2.16 (2025/10/11)
- Bugfix
- Fixed an issue that abnormal cache groups in certain scenarios could cause client data read failures.
JuiceFS 5.2.15 (2025/9/24)
- New
- Added support for two-level distributed caching.
- Improved
- Optimized the allocation of read-write cache in client memory to prevent performance degradation during severe contention.
- Added the ability to limit bandwidth when reading data from cache groups.
- Improved performance when deleting large directories using the
rmrcommand.
- Bugfix
- Fixed an issue that outdated attributes from the kernel cache might be read when accessing multiple mount points.
- Fixed an issue that failure to retrieve cache disk usage could cause the client process to crash.
- sync: fixed a potential deadlock issue when synchronizing large files.
JuiceFS 5.2.14 (2025/9/17)
- Improved
- Limit the memory usage of cache nodes to comply with
buffer-size.
- Limit the memory usage of cache nodes to comply with
- Bugfix
- Fixed the conflict between concurrent downloads.
- Fixed the issue that the client could crash when the available space for disk cache was too small.
- auth: fixed the issue that
authdid not prompt foraccesskeyandsecretkey.
JuiceFS 5.2.13 (2025/9/9)
- Improved
- When received multiple
GETrequests for the same object, the cache node now uses only one background concurrency. - Cache nodes no longer reuse data sent via zero-copy.
- Return an error directly when the checksum of cached data is insufficient, preventing client crashes.
- When received multiple
- Bugfix
- Fixed an issue that the
--block-interruptparameter was not correctly parsed during mount.
- Fixed an issue that the
JuiceFS 5.2.12 (2025/9/3)
- Improved
- Remove unnecessary checks on object storage encryption configuration for
fsckandgccommands. - Prefer using checksums stored on disk when distributed cache nodes send data.
- Optimize performance during concurrent access to the same data on cache nodes.
- Reduce lock contention when clients scan cache disks to build indexes.
- Improve handling of unknown error types for Alibaba Cloud OSS.
- gateway: Reduce memory usage when listing objects.
- Java SDK: Prefer Kerberos for authentication.
- sync: Automatically ignore non-existent files when using the
--files-fromparameter. - sync: Reduce the number of large files synchronized concurrently.
- sync: Allow using the
--cache-groupparameter when the source and destination are the same JFS volume.
- Remove unnecessary checks on object storage encryption configuration for
JuiceFS 5.2.11 (2025/8/21)
- Improved
- warmup: periodically print progress information when debug logging is enabled.
- Java SDK: added automatic renewal of Kerberos TGT.
JuiceFS 5.2.10 (2025/8/13)
- Improved
- Optimized the read-ahead strategy to better balance memory usage during concurrent read operations.
- Bugfix
- Fixed compatibility issues when older clients access the distributed cache.
- Windows: fixed an issue that integer parameters might not be applied correctly when running in the background.
JuiceFS 5.2.9 (2025/8/7)
- Improved
- Optimized memory usage balancing in read-write hybrid scenarios to mitigate read amplification.
JuiceFS 5.2.8 (2025/8/1)
- Improved
- Added support for client-side atime updates in writable mirror clusters.
- Bugfix
- Windows: fixed an issue where the client might crash when listing UID/GID.
JuiceFS 5.2.7 (2025/7/28)
- Improved
- Optimized the performance of
fstatfsto prevent excessive CPU usage during frequent calls. - Windows: added support for mounting file systems to non-drive-letter paths.
- Optimized the performance of
- Bugfix
- sync: fixed an issue that the file's mtime was incorrectly modified to the current time after synchronization.
JuiceFS 5.2.6 (2025/7/25)
- Bugfix
- Fixed an issue that the cache path was incorrect when parsing entries with cache type
memoryin fstab. - Fixed an issue that the
cache load durationmetric was not accurately measured.
- Fixed an issue that the cache path was incorrect when parsing entries with cache type
JuiceFS 5.2.5 (2025/7/9)
- Improved
- Record file names in data cache files to enhance consistency verification.
- SDK: automatically adjust cleanup speed based on the size of metadata cache to prevent excessive memory usage under high-pressure scenarios.
- SDK: improved the implementation for locating default configuration files to ensure compatibility with more platforms.
- Windows: support multiple mounts of the same file system on a node.
- Bugfix
- CSI: fixed an issue that creating directories might be false positive due to race conditions.
- gateway: fixed a user creation failure issue when the metadata service is a writable mirror.
JuiceFS 5.2.4 (2025/6/24)
- Improved
- Increased the threshold for establishing metadata cache via
lookupandgetattrrequests. - object/oss: added support for parsing
regionIdvia environment variables. - Windows: added support for accessing the Trash.
- Increased the threshold for establishing metadata cache via
- Bugfix
- objbench: fixed the time consumption calculation for testing methods.
JuiceFS 5.2.3 (2025/6/19)
- Improved
- Clients will not automatically warm up the root directories of sub-zones any more.
- debug: use a better method to determine whether a specified path is a JuiceFS mount point to prevent misidentification or hang.
- debug: allow more time for collecting diagnostic information from another session to prevent timeout errors.
- restore: automatically append numeric suffixes to files when conflicts occur during restoration.
- Bugfix
- gateway: fixed an issue where requests could enter an infinite loop after the gateway was set to read-only during operation.
JuiceFS 5.2.2 (2025/6/12)
- New
- gateway: added support for read-only mode.
- Improved
- gc: acquire QoS credit for delete requests in batch to reduce lock contention.
- gc: improve the progress bar display.
- gc: disable data chunk caching and background tasks during GC.
- gc: ignore temporary hard links and pending deletion files in sub-zones.
- gc: only check the replicated object storage when running GC for mirrored volume.
- debug: pass command arguments as well when collecting diagnostic information from another session.
- Raised
GOMAXPROCSlimit for long-running tasks from 16 to 32.
- Bugfix
- Fixed an array index out-of-bounds issue that could occur when reading large directories with concurrent file modifications.
- Fixed a shared block device issue that the device may fail to connect after the client reconnects.
- debug: fixed an issue that access log is not collected due to misidentification of background process status.
- sync: fixed an issue in cluster mode that the binaries used in worker nodes may not be consistent with the one in the master node.
- Windows: fixed multiple cache issues, including file attribute caching.
- Hadoop SDK: fixed a cache inconsistency issue that could occur when multiple client instances were created within a process.
JuiceFS 5.2.1 (2025/5/27)
- Bugfix
- Fixed client incompatibility issue with certain older metadata service.
JuiceFS 5.2.0 (2025/5/24)
- New
- Support Windows native client (beta).
- Improved the Shared Block Device feature, supporting multiple clients to access the same device via network.
- Support upgrading client binary and updating configuration through the Console.
- Support
all_squashfeature to map all users to a single one (beta). - Support creating invisible temporary files via
O_TMPFILEflag. - Added
--no-bgjoboption to actively disable background jobs. - Added
--schedule-priorityoption to set system scheduling priority. - Added
--cache-itemsoption to limit total number of cached blocks. - import: added
--files-fromoption allowing users to directly specify a file list for import. - clone: added
--max-batch-sizeoption to adjust maximum number of files cloned per internal request. - rmr: added
--batch-limitoption to adjust maximum number of files deleted per internal request. - debug: added
--sessionoption to collect debug information from a remote client. - sync: added
--check-changeoption to check if the copied file has changed. - sync: added
--start-timeand--end-timeoptions to filter files based on modification time.
- Improved
- Enhanced compatibility and performance of the Python SDK.
- Improved network performance of distributed caching by applying multiplexing, zero-copy, and directIO techniques.
- Optimized directory read performance through improved sorting.
- Limited the number of read-only open files to 10,000 to prevent performance degradation caused by resource leaks.
- Restricted total memory usage for read requests to avoid OOM in specific scenarios.
- Reduced read amplification issues when reading files of specific sizes or performing 4MiB random reads.
- Deduplicated prefetch requests to mitigate read amplification.
- Cache data from large file writes only when
--cache-large-writeis enabled. - Support cache disks of varying sizes.
- Disabled compression for distributed cache by default.
- Merged allocation requests to reduce pressure on the metadata service caused by QoS.
- Allowed unified configuration of ACL behavior via config files.
- Automatically set low watermark for kernels 5.12+ to improve network read performance.
- Adjust the system transparent hugepage mode to
deferby default, reducing freezes on machines with large memory. - Enabled kernel caching for negative directory entries.
- Enabled kernel caching of symbolic links.
- If a mirror file system is configured with dual buckets, prioritize sending write requests to the source.
- Added custom headers to used block devices to verify that they are managed by JFS.
- Added more monitoring metrics to track counts and latencies of FUSE requests, distributed cache requests, and object storage requests.
- gateway: support adding metadata to objects.
- auth: enabled encryption for access keys and secret keys by default, and explicit decryption is no longer allowed.
- import: respect
umaskconfiguration when automatically creating intermediate directories. - load: support loading encrypted metadata backup files directly.
- gc: log the count and size of objects that failed to be deleted.
- clone: Added progress bar display.
- Support global rate limiting for data deletion.
- Bugfix
- Fixed an issue that stale data might be read in specific scenarios.
- Fixed a potential integer overflow when using
copy_file_rangewith large segments. - Fixed node loss issues during node addition/removal in distributed cache.
- Fixed duplicate write requests in distributed cache.
- Fixed
accesslogparsing failures caused by filenames containing newline characters. - Fixed ambiguity in
fstabfiles when using comma-separated cache directories. - Fixed potential object leakage when data replication is enabled and object storage becomes unavailable during deletion.
- Fixed abnormal ACL behavior for splitted directories.
- Fixed bandwidth calculation errors in the
bench/objbenchcommands. - Fixed an issue that when using
importwith full bucket name, block cache does not work as expected. - Fixed detection failures when cloned paths are not in the same filesystem.
- Fixed occasional failures when deleting clones using
clone -d. - Fixed potential crashes in quantile due to improper locking of the map.
- Fixed slow updates and potential overflow of the metric p90 value.
- Fixed missing mtime updates during SDK write operations.
- Fixed incorrect open operation statistics in the SDK.
JuiceFS 5.1.20 (2025/5/19)
- Improved
- Automatically fall back to using
fusermountwhenfusermount3is not available on the operating system.
- Automatically fall back to using
- Bugfix
- gc: Fixed an issue that object storage without the
ListAPI did not properly fall back to theListAllAPI.
- gc: Fixed an issue that object storage without the
JuiceFS 5.1.19 (2025/5/13)
- New
- gateway: added
--hide-dir-objectoption to hide directory objects created viaPUT.
- gateway: added
- Improved
- Java SDK: do not enable
writebackwhencache-diris not configured.
- Java SDK: do not enable
- Bugfix
- Fixed an issue that resolving symbolic links pointing to relative paths could be inaccurate.
JuiceFS 5.1.18 (2025/4/16)
- New
- Added the
restorecommand to assist in recovering files from the trash, supporting multiple keywords for file filtering.
- Added the
- Improved
- Enable the background sync even when
--no-syncis set. - gc: automatically retry several times if listing object storage fails.
- Enable the background sync even when
- Bugfix
- Fixed incorrect
statfsresults for trash directories. - Fixed an issue that deleting empty directories may mistakenly fail.
- sync: fixed inode corruption caused by shared openfiles when both sides are JFS.
- Fixed incorrect
JuiceFS 5.1.17 (2025/4/1)
- New
- Add
--no-syncto mount to disable weekly sync for replicated buckets.
- Add
- Improved
- Added data checksum for BOS.
- Respect QoS for background during data replication.
- sync: trim the space at end of lines in
--files-from.
- Bugfix
- sync: fix the mixed open files when sync data using jfs scheme.
- Fix the crash when access a trash file.
- Fix the stale cache for splitted dir.
- Fix the problem that rename may fail in merged splitted dir.
JuiceFS 5.1.16 (2025/3/20)
- Improved
- Access new BOS buckets in virtual host style.
- Bugfix
- Fixed closing a not-aquired flock.
JuiceFS 5.1.15 (2025/3/17)
- New
- Added
--yesforrmr --skip-trashto avoid the interactive confirm.
- Added
JuiceFS 5.1.14 (2025/3/17)
- New
- Support bunny.
JuiceFS 5.1.13 (2025/2/27)
- Improved
- fsck: replicate the missing copy.
- Reduce the lock contension in disk cache.
- gc: added modification time of leaked objects into logging.
- sync: speed the prograss bar.
- Fixed the logging redirection with progress bar.
- Fixed the false netative of fsck for newly written files.
JuiceFS 5.1.12 (2025/2/22)
- Bugfix
- Fixed the crash caused by failed prefetch.
JuiceFS 5.1.11 (2025/2/13)
- Improved
- Added
--readahead-ratioto control the read amplification caused by readahead.
- Added
JuiceFS 5.1.10 (2025/2/11)
- New
- Added
--umaskto overwrite the umask from OS. - Added
--files-fromto sync a list of files or directories.
- Added
- Improved
- Improved the speed of parallelized listing.
- Added some metrics for read amplification.
- Reduced read amplification when local cache is disabled.
- Added heartbeat in client to detect stall process.
- Reduced the memory consumption when lots of sync jobs.
- Don't reset the list of cache nodes after disconnected from meta.
- Reduce the lock contension in client.
- Allow customized GOGC for client.
- Upgrade client gracefully with Ceph support.
- Bugfix
- Fixed the bug of potential stale read.
- Fixed the failure caused by concurrent mount with subdir.
- Fixed the type of trash files in dumpped JSON.
- Fixed the bug that warmup a list of path repeatly.
JuiceFS 5.1.9 (2025/1/15)
- Improved
- Improved metadata cache for getattr.
- Improved the management for background threads in Java SDK.
- Bugfix
- Fixed the size overflow in copy_file_range.
- Fixed lost enviroment variables during upgrade.
- Fixed repeated metadata load requests.
JuiceFS 5.1.8 (2025/1/8)
- Improved
- Improved write speed for mmap.
- Improved performance for random write.
- Improved performance for rebalance of cached blocks.
- Bugfix
- Fixed the
--check-allof sync in cluster mode. - Fixed the problem that the UID mapping can't be disabled.
- Fixed the
JuiceFS 5.1.7 (2024/12/30)
- Improved
- Kill the hanging process to recover FUSE mount point.
- Improved the balance between disks with different capacity.
- Added
--head-dirfor S3 gateway to allow HEAD request on directories. - Allow mount a volume using meta-url without
auth. - Added some fields in result of status command.
- Bugfix
- Fixed the infinite loop caused by lost FUSE requests.
- Fixed that the crash bug when meta service is disconnected.
- Fixed that the bug that cache group may not work.
JuiceFS 5.1.6 (2024/12/4)
- Improved
- Logge the number of failed delete requests in gc.
- Bugfix
- Ingores unsupported flags of setxattr in macOS.
JuiceFS 5.1.5 (2024/11/29)
- Improved
- Speedups the transfer of cached blocks for decommission.
- Supports fsspec in Python SDK.
JuiceFS 5.1.4 (2024/11/4)
- Bugfix
- S3 Gateway always returns
Content-Typeheader. - Fixed the bug that stagging blocks are not uploaded after restart.
- S3 Gateway always returns
JuiceFS 5.1.3 (2024/10/28)
- New
- Import accessing directory on demand.
- Improved
- Improved the performance of memory allocation.
- Bugfix
- Fixed the long timeout of AWS IAM.
- Fixed multipart upload of US3.
- Fixed
warmupwith file list.
JuiceFS 5.1.2 (2024/10/16)
- Improved
- Support
--cache-expirefor in-memory cache.
- Support
- Bugfix
- Fixed watchdog.
- Run the version with Ceph support in same process.
- Python SDK: increase default buffering to 128K
- Fixed the bug that rename and unlink may crash.
- Support XattrNoSecurity in macOS.
JuiceFS 5.1.1 (2024/9/19)
- Improved
- Improved the speed of sequatial reads in the Python SDK.
- Improved the warmup of distributed cache with a backup copy.
- Improved detection of disk failures.
- Added
--group-compress=falseto disable compression for remote cache.
- Bugfix
- Fixed the problem that watchdog may kill the service process when meta is not available.
- Fixed a problem causing the loss of FUSE requests after service process restarts.
- Fixed a crash occurring during the List operation in S3 Gateway.
JuiceFS 5.1.0 (2024/9/10)
- New
- Support writing data via mirror file systems (beta).
- Added Python SDK with full data read/write support (beta).
- Support distributed cache with two replicas.
- S3 Gateway supports multi-user and authentication management.
- Added the
compactcommand to compact data fragments under specific paths. - Added the
--skip-trashoption to thermrcommand so that it can delete files directly. - Added
--updateand--force-updateoptions to theimportcommand so that it can update existing files easily. - Added "dummy" and "null" object storages for testing purposes.
- Improved
- Added more monitoring metrics.
- Improved the performance when modifying the trash time.
- Improved the performance when importing files.
- Asynchronously write error logs to avoid slow disks affecting service.
- Limit the number of CPU cores (
GOMAXPROCS=16) by default to avoid CPU usage spikes during network congestion. - Reduced the memory usage of client cache to improve the performance of accessing directories.
- Improved the performance of List on S3 Gateway.
- Support using
--max-writeto adjust the size of FUSE write requests. - Enhance the
warmup --checkcommand to display detailed cache locations. - Added
mount --cache-large-writeto force cache large blocks. - Support using
--cache-size=-1to use all available space on the cache disk. - Support
--cache-expireto evict cache blocks by time, same as the Community Edition. - Support smooth upgrades on macOS.
- Added
auth --encrypt-keysto make stronger encryption for private information in the configuration file. - Display global options when running commands with
--help. - In Java SDK allow setting
juicefs.groupsto the user group information. - Allow viewing configurations of Java SDK in the console.
- Avoid creating too many threads in the Java SDK.
- Automatically ignore JuiceFS blocks when importing the bucket currently used.
- Support using
destroy --forceto skip cleanup of the object storage. - Fixed the issue that the
infocommand may return inaccurate block information. - Fixed the issue that the memory cache may become too large in extreme cases.
- Fixed the issue that the
debugcommand may get stuck under some circumstances. - Extend the default timeout for distributed cache to
65seconds and make it configurable. - In the
clonecommand improved the support for ACLs, etc. - In Java SDK added support for
juicefs.umask. - Added
--createto thequotacommand to create directories automatically. - Added the
--max-readaheadoption to control the read-ahead window for sequential reads. - Reduce read amplification when accessing distributed caches without a single cache.
- Improved the speed of scanning metadata in the
gcandfsckcommands. - Limit the number of concurrent requests processed by cache nodes to avoid overloading, and indicate clients to access the object storage directly.
- Log error messages that lead to cache nodes disconnected.
- Reduce stress on metadata services when deleting large cloned directories.
- Improved the performance of
objbench.
- Bugfix
- Fixed compatibility issue with file extended attributes on macOS.
- Fixed ACLs for split directories.
- Fixed the issue that
readdirmay return duplicate files if it is interrupted. - Fixed the issue that clients may crash when they fail to get local IP.
- Fixed the issue that the
summarycommand may not merge information of split directories. - Fixed the bug that
--max-deletedoes not working. - Fixed the bug when using
objbenchto test file system functionalities.
JuiceFS 5.0.25 (2024/9/2)
- Bugfix
- Fixed the issue that
warmup --evictmay wrongly delete the data to be uploaded in writeback mode.
- Fixed the issue that
JuiceFS 5.0.24 (2024/9/2)
- Improved
- Allows block device writes to stop completely.
- In
objbenchreduce the number of List operations to the number of threads.
- Bugfix
- Fixed the issue that the
gccommand may misclassify normal data as a leak when scanning large metadata for more than an hour. - Fixed the issue that the
debugcommand fails to run in CSI. - Fixed the issue that in
warmup --checkthe connections become short when cache is missing.
- Fixed the issue that the
JuiceFS 5.0.23 (2024/8/2)
- Improved
- Allows some of the clients mount with shared block devices while others don't.
- Added
--object-clientsto improve performance when accessing object storage.
JuiceFS 5.0.22 (2024/7/30)
- Improved
- Support skipNBytes in Java SDK
- Bugfix
- Fixed the crash after misformed meta response.
- Fixed the cache group in writable mirror.
JuiceFS 5.0.21 (2024/6/28)
- New
- Added
--weight-unitto calculate--group-weight.
- Added
- Bugfix
- Fixed the dead loop with broken splitted directory.
- Fixed the import command (introduced since 5.0.18).
- Fixed the bug when import objects into an encrypted volume.
JuiceFS 5.0.19 (2024/6/20)
- Improved
- Support async DIO
- Speedup List in S3 gateway
- Bugfix
- Fixed the crash when cache group is used with writable mirror.
- Fixed the operation failure when a writable mirror is just mounted.
- Fixed the hanging warmup when disk is out of space
- Fixed the failed PUT caused by staled metadata cache
- Fixed the ineffectness of metadata cache of splitted directoires in S3 gateway.
JuiceFS 5.0.18 (2024/6/3)
- Improved
- Reduce the memory usage when cache disk is full
- Donot block deletion when compaction is busy.
- Bugfix
- Fixed some compatibility issues of S3 gateway.
- Fixed the metric of failed FUSE operations.
- Fixed the stale attributes after ACL update.
JuiceFS 5.0.17 (2024/5/2)
- Improved
- Redirect requests of remote cache to expected nodes.
- Fetch cache blocks from existing nodes for new added node.
- Fixed meta cache for root.
- Avoid duplicated notify FUSE calls.
JuiceFS 5.0.16 (2024/4/16)
- Improved
- Reduce the thoughput for balancing of distributed cache.
- Remove the cache disk after 10 failures in 10 minutes.
- Increase the retry for writable mirror.
- Balance the hot cache first.
- Avoid the concurrent balancing.
- Added logging for adding/removing cache nodes.
- Improved the QoS for failed requests.
- Improved the write performance in
writebackmode.
- Bugfix
- Fixed the stale metrics of size of cached blocks (introduced in 5.0.15).
JuiceFS 5.0.15 (2024/4/7)
- Improved
- Improved readahead for requests acrossing block borders.
- Remove a cache disk after 10 faluires.
- Fixed the stale write caused by compaction.
- Bugfix
- Fixed the inbalance between disks in cache cluster.
- Fixed the missing metrics when read imported file from other buckets.
JuiceFS 5.0.14 (2024/3/25)
- New
- Added priority (
--cache-prioirty) for warmup command.
- Added priority (
- Improved
- Reduced the memory usage of idle directories.
- Stop write cache blocks when no space left in cache disk.
- Bugfix
- Fixed the in-memory cache (introduced in 5.0.0).
- Fixed the stale xattr in writable mirror.
JuiceFS 5.0.13 (2024/3/19)
- Improved
- Improve the speed of destroy.
- Bugfix
- Fixed the possible deadlock when kill a mountpoint.
- Fixed the problem in Java SDK that may write to closed file.
- Fixed the problem that Java SDK may fail to initialize.
- Fixed the sticky bit when sync files using jfs://
- Fixed the deadlock when copy_file_range on itself.
JuiceFS 5.0.12 (2024/3/4)
- Bugfix
- Fixed the permission check when list a splitted directory.
- Fixed the crash the mount a mirrored volume without data replication.
JuiceFS 5.0.11 (2024/2/19)
- Improved
- sync: support files larger than 10 TiB
- Bugfix
- Fixed the stale attribute of directory in metadata cache.
- Fixed the high CPU utilization when initialize the Java SDK.
JuiceFS 5.0.10 (2024/1/24)
- New
- Added
--sort-dirto ensure the order for files returned by readdir to support nfsd. - Added
--hide-internalto hide internal files.
- Added
- Improved
- Add metrics for the duration of background jobs.
- Increased timeout to 60 seconds for disk operations.
JuiceFS 5.0.9 (2024/1/20)
- Improved
- Log all failed requests (except 404) in error log of gateway.
- Added generated request ID into the access log of gateway.
- Bugfix
- Fixed the bug that we can't sync files with long names using
jfs://. - Fixed the bug that the PUT object request may fail in gateway under high concurrent workload.
- Fixed the bug that we can't sync files with long names using
JuiceFS 5.0.8 (2024/1/13)
- Improved
- Retry the new added cache peer up to 5 times.
JuiceFS 5.0.7 (2024/1/7)
- New
- Added
--logto specify the path of error log forgatewayandwebdav. - Added
--access-log-filesto control the numbber of logging file for gateway.
- Added
- Bugfix
- Fixed the bug that mount may fail to generate endpoint for object store.
- Fixed the bug that import command cannot access object store.
JuiceFS 5.0.6 (2023/12/21)
- Bugfix
- Fixed the symlink with absolute path using jfs://.
- Used the passphrase in configuration.
JuiceFS 5.0.5 (2023/12/14)
-
New
- Added mount option
--initial-readaheadto boost the performance for sequential read.
- Added mount option
-
Improved
- Support dummy interface for
--group-network.
- Support dummy interface for
-
Bugfix
- Fixed the bug that it may fail to sync a large file with long name to COS.
- Fixed the bandwidth limit for background jobs.
JuiceFS 5.0.4 (2023/12/7)
- Bugfix
- Fixed the bandwidth limitation for background jobs.
- Fixed the mount with subdir token.
- Fixed upgrade when there is a mount point running in a container.
- Fixed the crash when there is a corrupted block in disk.
- Fixed repeated check for endpoint during mount.
- Fixed the problem that
-o backgrounddoes not work in a container. - Fixed the cached GID when PID is reused.
- Fixed the mount issue when mount point is the same as the volume name.
- Fixed the attribute of cached directories.
JuiceFS 5.0.3 (2023/11/30)
-
New
- Added
--group-networkand--group-portto specify the network interface and port. - Added
juicefs.flipfor Java SDK.
- Added
-
Improved
- Increased the maximium readahead to 512 MiB for single file.
- Download the version with Ceph support for all the commands.
- Reduce the read amplification for small continious read.
- Check cache-size before warmup, and give a warming when there is no enough space.
-
Bugfix
- Fixed the bug that may crash when list from Ceph.
- Fixed the bug that warmup may hang after client restart gracefully.
- Fixed the bug that may cause deadlock when mount in background.
- Fixed the bug that client will crash when fail to get the configuration after 10 tries.
JuiceFS 5.0.2 (2023/10/16)
-
New
- Support JFS_NO_CHECK_OBJECT_STORAGE=1 to skip the test for object storage.
-
Improved
- Speed up the mount process.
- Support have a dedicated cache node on the same machine.
- Reduce the frequency to check disk usage to avoid the high CPU usage when disk is full.
-
Bugfix
- Fixed the wrong mode when chmod failed.
- Invalidate the cache after link.
- Fixed the fallocate and copy_file_range when there is holes in the file.
JuiceFS 5.0.1 (2023/10/30)
-
New
- Support multi-attach block storage as writeback cache
- Merges file blocks into a single object after specified period.
- Support block cache for imported files.
- Evict block cache for given files or directories.
- Check the block cache for givin files or directories.
- Support storage class as a mount option.
- Support different weight for each cache node.
- Decommission a cache node by given weight to 0.
- Support eviction policy
none(no eviction).
-
Improved
- Balance between cache nodes.
- Verify checksum for all block cache.
- Remove broken cache disk after I/O or timeout.
- Manage multiple cache disk using consistent hash.
- Reduced the memory usage when list a huge directory.
- Detect symlink loops in gateway and Java SDK.
- Delete the cached block in distributed mode.
- Improved the efficiency of compaction.
- loging the request ID in error logging.
JuiceFS 4.9.23 (2023/10/18)
- Bugfix
- Fixed leaked file created by S3 gateway.
JuiceFS 4.9.22 (2023/9/20)
- Improved
- Fill the remote cache in writeback mode.
JuiceFS 4.9.21 (2023/9/14)
- Improved
- Reduce the data fragment for continious write.
- Improve the performance for small write when buffer is running out.
- Reduces used buffer when object storage is slow.
- Bugfix
- Fixed the deadlock when bandwidth limit is low
JuiceFS 4.9.19 (2023/8/31)
- Improved
- Interrupt the read/write requests after 5 minutes.
- Interrupt all the FUSE operations after 6 minutes.
- Bugfix
- Fixed the deadlock during graceful upgrade.
- Fixed the warning about UUID.
JuiceFS 4.9.18 (2023/8/25)
- Improved
- Retry the metadata requests after 1 minutes.
- Avoid the DDOS from warning up metadata cache from lots of clients in the same time.
- Bugfix
- Fixed the deadlock during umount.
JuiceFS 4.9.17 (2023/8/21)
- Improved
- Fixed service overload caused by frequent root-directory metadata cache warmup from a large number of clients
- Extended sync
--flush-waitto 60 seconds to reduce fragmentation - Print logs when timeout responses are received
- Improved performance by using multiple Gluster clients
- Bugfix
- Fixed an issue in Java SDK that could use a closed file system
- Fixed the hang when updating mtab
JuiceFS 4.9.16 (2023/8/8)
- Improved
- Automatically adjust the interval based on response time of root-directory metadata cache warmup requests to prevent overload
JuiceFS 4.9.15 (2023/8/7)
- Bugfix
- Fixed the bug that client crash when list a corrupted directory.
JuiceFS 4.9.14 (2023/7/27)
- New
- Support Gluster as an object storage
- Support access symlink with absolute path under given mount point.
JuiceFS 4.9.13 (2023/7/25)
- Improved
- Added
--flush-waittosynccommand to adjust auto-flush interval and reduce fragmentation
- Added
JuiceFS 4.9.11 (2023/6/29)
- Improved
- Added
--prefix-internaltomountcommand to avoid conflict on internal files.
- Added
JuiceFS 4.9.10 (2023/6/26)
- Bugfix
- Fixed graceful restart which could be deadlock under heavy workload.
- Fixed wrong length of files after merged small writes (introduced by 4.9.6).
- Fixed the errno handling of quota command.
JuiceFS 4.9.9 (2023/6/19)
- Improved
- Removed unnecessary memset, speedup data reading.
- Added options of JuiceFS client to
synccommand.
JuiceFS 4.9.8 (2023/6/15)
- Improved
- Reduce the warning when rebuild the block cache.